{==============================================================================}
{  Acroprise Multi-Language Components                                         }
{                                                                              }
{  Copyright (C), 1999-2012, Acroprise Inc.                                    }
{  http://www.acroprise.com.tw                                                 }
{  ALL RIGHTS RESERVED                                                         }
{                                                                              }
{  Author   : Mustapha.Wang                                                    }
{  Version  : 4.1.15.2159                                                      }
{  Creation : 2002/05/06                                                       }
{  Revision :                                                                  }
{  Task     :                                                                  }
{==============================================================================}
unit acroMultiInterface;
{$I acroMultiLang.Inc}
interface

uses
  Classes,SysUtils,acroMultiConsts
  {$IFDEF Delphi15High}
  ,System.UITypes
  {$ELSE}
  ,Dialogs
  {$ENDIF}
  ;

type
  IMultiFramework=interface
    function  GetApplicationExeName:string;
    function  GetApplicationTitle:string;

    procedure ShowMessage(const AMsg:string);
    function  MessageDlg(const Msg: string; DlgType: TMsgDlgType;
              Buttons: TMsgDlgButtons; HelpCtx: Longint): Integer;

    function  GetScreenFormCount:integer;
    function  GetScreenForm(const Index:integer):TComponent;

    function  GetFormHandle(AForm:TObject):THandle;
    function  IsFormHandleAllocated(AForm:TObject):Boolean;
    function  InstanceIsForm(AInstance:TObject):Boolean;

    function  InstanceIsWinControl(AInstance:TObject):Boolean;
    function  GetWinControlChildrenCount(AControl:TObject):integer;
    function  GetWinControlChild(AControl:TObject;const Index:integer):TComponent;

    function  InstanceIsControl(AInstance:TObject):Boolean;
    function  GetControlParent(AControl:TObject):TComponent;
    function  GetControlHint(AControl:TObject):string;
    procedure SetControlHint(AControl:TObject;AHint:string);
  end;

  procedure CheckMultiFrameworkInterface;

var
  g_MultiFramework:IMultiFramework=nil;

implementation

procedure CheckMultiFrameworkInterface;
begin
  if g_MultiFramework=nil then
    raise Exception.Create(S_NotImplementIMultiFramework);
end;

initialization

end.
